#ifndef INPUT_SERVICE_ENGINE_HANDLER_H
#define INPUT_SERVICE_ENGINE_HANDLER_H

#include <QObject>
#include "../qdbus-common.h"

class InputServiceEngineHandler : public QObject
{
    Q_OBJECT
public:
    InputServiceEngineHandler(QObject *parent = nullptr);
    virtual ~InputServiceEngineHandler();

public: // PROPERTIES
public Q_SLOTS: // METHODS
    QStringMap AcquireInformation(const QString &uid, const QStringList &keys);
    QStringList AcquireResult(const QString &uid, QStringList &pinyins, QString &composition, QString &commit, QString &hint, int &status);
    int Clear(const QString &uid);
    int Destroy(const QString &uid);
    int PageDown(const QString &uid);
    int PageUp(const QString &uid);
    QIntList PushChars(const QString &uid, const QIntList &chars);
    QIntList PushCoordinates(const QString &uid, const QInt2List &coordinates);
    int PushVoiceData(const QString &uid, const QByteArray &data, uint size, bool last);
    int SelectCandidate(const QString &uid, int type, int index);
    int SetMode(const QString &uid, const QString &mode, const QString &language);
    QIntList SetValues(const QString &uid, const QStringMap &kvs);
Q_SIGNALS: // SIGNALS
    void Event(const QString &uid, int single, const QByteArray &data, uint size);

};

#endif //INPUT_SERVICE_ENGINE_HANDLER_H
